<?php
	/**
	 * Обработка запроса на ввод покупки.
	 * 
	 * @author Костин Алексей Васильевич aka Volt(220)
	 * @copyright Copyright (c) 2010, Костин Алексей Васильевич
	 * @license http://www.gnu.org/licenses/gpl-3.0.html GNU Public License
	 * @version 1.0
	 * @package HomeMoney
	 */

	/**
	 * Подключение настроек. 
	 */
	require_once("../ini.php");
	$DBCon=SQLDBFactory::getDB();


	if ($_SERVER["REQUEST_METHOD"]!="POST") die();

	$date=$DBCon->escapeString($_POST["date"]);
	$sumB=$_POST["sumB"]+0;

	$idShop=$DBCon->findOrInsert("shops", array("name"=>$_POST["shop"]));
	$idAddr=null;
	if ($_POST["addr"]){
		$idAddr=$DBCon->findOrInsert("address", array("addr"=>$_POST["addr"]));
	}
	
	try{
		$DBCon->startTran();	
		if ($idAddr){
			$DBCon->insert("replace into shops_address (id_addr, id_shop) values ($idAddr, $idShop)");
		}

		$idBuy=$DBCon->insert("insert into buys(id_shop, date, sum) values ($idShop,$date,$sumB) ");	

		foreach($_POST as $buy){
			if (!is_array($buy)) continue;
			
			$col=$buy["col"]+0;
			$price=$buy["cena"]+0;
			$sum=$buy["sum"]+0;
		
			$idCat=insertCat("categ", array("cat"=>$buy["cat"]));
			$idGood=$DBCon->findOrInsert("goods", array("item"=>$buy["item"], "id_cat"=>$idCat));
		
			$DBCon->insert("insert into basket(id_buy, id_good, col, price, sum) values ($idBuy, $idGood, $col, $price, $sum)");
		}
	$DBCon->commit();
	echo "<p class=\"vseOK\">Сделано</p>";
	}catch(SqlException $e){
		$DBCon->rollback();
		echo "<p class=\"err\">Возникла ошибка при вводе в базу данных</p>";
	}
	
	function insertCat($tab, $where){
		$DBCon=SQLDBFactory::getDB();
		$DBCon->select(array("id"), $tab, $where);
		if ($mas=$DBCon->fetchRow()){
			$idCat=$mas[0];
		}
		else{
			$idCat=$DBCon->insert($where,$tab);
			$DBCon->insert("insert into Categ_Tree(id_cat, id_par, `level`) values ($idCat, $idCat,0), ($idCat, 1,1)");	
		}
		return $idCat;
	}
?>